/**
 * 对url加参数
 */
function addParam(url, name, value) {
	var newUrl = "";
	var reg = new RegExp("(^|)" + name + "=([^&]*)(|$)");
	var tmp = name + "=" + value;
	if(url.match(reg) != null) {
		newUrl = url.replace(eval(reg), tmp);
	} else {
		if(url.match("[\?]")) {
			newUrl = url + "&" + tmp;
		} else {
			newUrl = url + "?" + tmp;
		}
	}
	return newUrl;
}

/**
 * 获取所有参数
 */
function GetRequest() { 
	var url = location.search; //获取url中"?"符后的字串 
	var theRequest = new Object(); 
	if (url.indexOf("?") != -1) { 
		var str = url.substr(1); 
		strs = str.split("&"); 
		for(var i = 0; i < strs.length; i ++) { 
			theRequest[strs[i].split("=")[0]]=decodeURI(strs[i].split("=")[1]); 
		} 
	} 
	return theRequest;
}

/**
 * 获取批量ids
 */
function getIds () {
	var checked_item = $(".check_item").find('input:checked');
	if (checked_item.length > 0) {
		var ids = new Array();
		checked_item.each(function(){
			var id = $(this).val();
			ids.push(id);
		});
		return ids;
	}else{
		return false;
	}
}
/**
 * post
 */
function postData (url,data,notJump) {
	$.post(url,data,function(json){
		if (json.info) {
    		layer.msg(json.info);
		}
        if(json.url && !notJump){
    		setTimeout(function(){
				location.href=json.url;
		   },2000);
		}
//		if(json.url == '')
//		{
//			setTimeout(function(){
//				location.reload();
//			},2000);
//		}
   });
}

$(document).ready(function(){
	/**
	 * tooltip
	 */
	if($('[data-toggle="tooltip"]').length > 0){
		$('[data-toggle="tooltip"]').tooltip();
	}
	
	/**
	 * 全选
	 */
	if($(".check_all").length > 0){
		$(".check_all").click(function(){
			if ($(this).hasClass('active')) {
				$(".check_item").find('input').prop('checked',false).trigger('change');
			} else{
				$(".check_item").find('input').prop('checked',true).trigger('change');
			}
		});
		
		$(".check_item").find('input').change(function(){
			var total_count = $(".check_item").length;
			var checked_count = $(".check_item").find('input:checked').length;
			if (total_count == checked_count) {
				$(".check_all").addClass('active');
			} else{
				$(".check_all").removeClass('active');
			}
		});
	}
	
	/**
	 * 删除单个
	 */
	if ($(".del_item").length > 0) {
		$(".del_item").click(function(){
			var _this = $(this);
			var url = _this.data('href');
			layer.msg('确定要删除么？', {
			    time: 0, //不自动关闭
			    btn: ['确定', '取消'],
			    yes: function(index){
			        layer.close(index);
			        postData(url,{});
			    }
			});
		});
	}
	
	/**
	 * 批量操作
	 */
	if ($(".action_all").length > 0) {
		$(".action_all").click(function(){
			var ids = getIds();
			if ( ids ) {
				var url = $(this).data('href');
				var confirm = $(this).data('confirm');
				if (confirm) {
					layer.msg(confirm, {
					    time: 0, //不自动关闭
					    btn: ['确定', '取消'],
					    yes: function(index){
					        layer.close(index);
					        postData(url,{ids : ids});
					    }
					});
				} else{
					postData(url,{ids : ids});
				}
			}
		});
	}
	
	if($("[data-get]").length > 0){
		$("[data-get]").each(function(){
			var box = $(this);
			var url = box.data('get');
			$.get(url,{},function(html){
				box.html(html);
			},'html')
		});
	}

	/**
	 * 表格排序
	 */
	if($("[data-order]").length > 0){
		$("[data-order]").on('click',function(){
			var order = $(this).data('order');
			var current_url = window.location.href;
			var jump_url = addParam(current_url,'order',order);
			window.location.href = jump_url;
		});
	}
	
	/**
	 * 导出Excel
	 * url模式必须为0
	 * 当前页面有方法exportExcel
	 */
	if($(".exportXls").length > 0){
		$(".exportXls").on('click',function(){
			var current_url = window.location.href;
			var jump_url = addParam(current_url,'a','exportExcel');
			window.open(jump_url);
		});
	}
	
	/**
	 * 查询表单提交
	 */
	if($(".search_submit").length > 0){
		$(".search_submit").on('click',function(){
			var current_url = window.location.href;
			var val = $(this).closest('.search_form').find('input').val();
			var name = $(this).closest('.search_form').find('input').attr('name');
			var jump_url = addParam(current_url,name,val);
			window.location.href = jump_url;
		});
		$(".search_form").find('input').on('keypress',function(e){
			if(e.keyCode==13){
			   $(this).closest(".search_form").find('.search_submit').trigger('click');
			}
		});
	}

	/**
	 * 表格筛选触发下拉
	 */
	if($("[data-screen]").length > 0){
		$("[data-screen]").on('click',function(e){
			e.stopPropagation();
			var th = $(this).closest('th');
			if(th.find('ul').length <= 0){
				var data_url = $(this).data('screen');
				var k = $(this).data('key');
				var current_url = window.location.href;
				var theRequest = GetRequest();
				var position_top = th.position().top;
				var position_left = th.position().left;
				var th_height = th.outerHeight();
				var th_width = th.outerWidth();
				var ul = "<ul class='table_screen_box' style='width:"+th_width+"px'><input type='text' placeholder='search'/></ul>";
				th.append(ul);
				th.find('ul').css({'top':(position_top+th_height)+'px','left':position_left+'px'});
				$.get(data_url,{k:k},function(data){
					if(data.length > 0){
						for (var i = 0; i < data.length; i++) {
							if(!data[i].value){
								data[i].name = 'null';
								data[i].value = 'null';
							}
							var jump_url = addParam(current_url,data[i].key,data[i].value);
							
							var active = '';
							if(data[i].name == theRequest[data[i].key]){
								active = 'class="active" style="cursor:default;"';
								jump_url = 'javascript:;';
							}
						    th.find('ul').append('<li><a href="'+jump_url+'" '+active+'>'+data[i].name+'</a></li>');
						}
					}else{
						th.find('ul').append('<li style="padding:7px;">无可筛选数据</li>');
					}
				},'json');
			}else{
				th.find('ul').show();
			}
			
			$(".table_screen_box").find('li').on('click',function(e){
				e.stopPropagation();
			});
		});
		$(document).on('click',function(e){
			e.stopPropagation();
			$(".table_screen_box").hide();
		});
		$(document).on('keyup','.table_screen_box input',function(e){
			e.stopPropagation();
			var value = $(this).val();
			$(this).closest('.table_screen_box').find('li').hide();
			$(this).closest('.table_screen_box').find(":contains('"+value+"')").show();
			$(this).closest('.table_screen_box').find('.active').parent().show();
		});
		$(document).on('click','.table_screen_box input',function(e){
			e.stopPropagation();
		});
	}
});